适用于 CoaXPress over Fiber 采集卡的数据转发

imaFlex 2 Dual 100 平台上的数据转发

简短说明

文件: \Examples\Acquisition\DataForwarding\iF2D100\DFExample_Host.vad
\Examples\Acquisition\DataForwarding\iF2D100\DFExample_Client_MidPosition.vad
\Examples\Acquisition\DataForwarding\iF2D100\DFExample_Client_EndPosition.vad
\Examples\Acquisition\DataForwarding\iF2D100\hap\DFExample_Host.hap\DFExample_Host.hap
\Examples\Acquisition\DataForwarding\iF2D100\hap\DFExample_Client_MidPosition.hap
\Examples\Acquisition\DataForwarding\iF2D100\hap\DFExample_Client_EndPosition.hap
\Examples\Acquisition\DataForwarding\SDK

默认平台: iF2D100

简要说明

本文介绍了在 imaFlex 2 Dual 100 平台上实现数据转发。

采用菊花链式连接的图像采集卡的数据转发环境通常如下所示:

菊花链式图像采集卡(数据转发)

图 233. 菊花链式图像采集卡(数据转发)


最左侧的设备充当后续连接的客户端(从设备)的主机(主设备)。主机设备接收到的数据(例如来自相机的图像数据)会被转发给客户端。根据具体的应用场景,客户端可以转发完整的原始流数据,也可以仅转发其中的一部分。这种行为会在各个设备之间依此传递,直至菊花链的末端。

Basler imaFlex 2 Dual 100 的数据转发功能不仅支持转发图像数据,还支持转发元数据(例如用于远程控制客户端设备)。以下小节将通过一个基础示例来同时演示这两个方面。

用法

这些示例小应用程序(Applet)旨在与相应的数据转发 SDK 示例应用程序配合使用 DFMaster 和 DFSlave。因此,无需通过 microDisplay X 等工具手动加载小应用程序。SDK 示例应用程序会自动加载它们,并且所有用户交互均专由主机(主设备)应用程序处理。

有关使用图像采集卡 SDK 脚本的信息,请参阅位于 examples\Acquisition\DataForwarding\SDK VisualApplets 安装目录下的相应脚本文档。

数据转发示例 Applets

示例小应用程序从以下两个方面演示了数据转发:

  1. 将图像数据从主机传输到其后续的客户端。

  2. 远程控制和监控客户端。

Data Forwarding VisualApplets Applets

图像数据传输非常直接且易于实现。每个示例小应用程序在其图像路径中都展示了这一点。

远程控制和监控需要更多的工作,因为您无法直接利用来自 VisualApplets 链接的数据(如传入的控制命令)来动态更改小应用程序参数。您可以通过使用 VisualApplets 事件系统来解决这一限制。远程控制元数据路径演示了这种方法。

尽管小应用程序设计将这两条路径分开显示,但对于单个设备对而言,两条路径共享相同的光纤资源。图像数据通过编号为 0 到 3 的全部四条光纤通道传输,而远程控制数据/元数据则使用同一光纤模块的第 0 条通道。

换句话说,光纤模块的 2×4 条通道以双向方式连接两个设备,用于传输图像和元数据。相应的 数据转发算子 DFTxImage、DFTxMeta、DFRxImage 和 DFRxMeta 在内部管理这些操作。

下表总结了示例中实现的数据转发连接。

光纤端口 主机 中间客户端 末端客户端
端口 0 保留(例如用于相机) 上一页 上一页
port1 下一个 下一个 —

表 17. 数据转发连接(光纤端口)


有关示例设计文件处理结构的详细文档,请参见相应 *.vad 设计中的注释框。

VisualApplets 事件系统与数据转发远程控制

利用 VisualApplets 事件系统进行远程控制的核心理念在于,Framegrabber SDK API 提供了用于访问算子和小程序(applet)参数的例程。通过 VisualApplets 事件系统,可以将带有有效载荷数据的事件从小程序发送到主控 PC,而事件监控 SDK 应用程序可以对该有效载荷作出响应。

基于这一理念,远程控制信号流如下:

  • 主机小程序向客户端发送命令。

  • 在客户端小程序中,接收到的每个控制命令都会触发一个事件(带有有效载荷)。

  • 该事件由图像采集卡操作系统驱动程序捕获。

  • 事件监控 SDK 应用程序根据对事件有效载荷的解析执行相应的 SDK 例程。

用户定义的远程控制通信协议

数据转发示例使用自定义通信协议。在此范围内,命令事务称为 消息。消息的结构如下所示:

位索引 描述 大小(位)
[55] 读写标志 1
[54:48] 客户端(从机)设备地址 7
[47:32] 软件可访问的寄存器地址 16
[31:0] 软件可访问的寄存器数据 32

表 18. 消息位布局


消息总共为 56 位,这对应于 DFTxMeta 和 DFRxMeta 算子一个数据字的大小。

消息触发器用于启动消息。SDK 主机应用程序负责配置消息内容和触发器。

通常,在 VisualApplets 链路上传输的数据可以通过不同的方式进行处理。对于数据转发示例,以下两种处理方法具有相关性:

  1. 该系统直接使用命令数据位。例如,它将一个专用位转换为 VALT_SIGNAL 并将其路由至 GPO 组。

  2. 系统会触发一个 VisualApplets 事件,并可以包含从远程命令中提取的有效载荷数据。

第一种处理方法代表一个 硬件命令。系统使用消息位作为信号源来触发专用操作。第二种处理方法代表一个 软件命令,因为驱动程序软件会处理发送给主机 PC 的事件。数据转发示例实现了这两种命令类型,并将重点放在软件命令上。